<template>
    <div class="swiper-container" ref="cur">
        <div class="swiper-wrapper">
            <div class="swiper-slide" v-for="(carouse) in list">
                <!-- 轮播图图片 -->
                <img :src="carouse.imgUrl" :key="carouse.id">
            </div>
        </div>
        <!-- 如果需要分页器 -->
        <div class="swiper-pagination"></div>

        <!-- 如果需要导航按钮 -->
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
    </div>
</template>

<script>
import Swiper from 'swiper';
export default {
    name: 'Carousel',
    props: ['list'],
    watch: {
        list: {
            immediate: true,/* 立即监听 */
            handler() {
                /* 第一次书写swiper的时候在mounted中书写是不可行的 第一次书写轮播图的时候是在当前组件发送请求动态渲染的结构 前提时服务器请求的数据必须回来
              但这次的请求不是在自己组建发送的的请求  他是在home中挂在完毕后发送的请求 它已经通过props把数据传过来了 所以已经有了数据 就不需要再去监听数据在nextTick下一步去渲染js */
                this.$nextTick(() => {
                    new Swiper(this.$refs.cur, {
                        loop: true,
                        deep: true,
                        speed: 500,
                        autoplay: {
                            delay: 1500,
                            disableOnInteraction: false/* 操作轮播图后任然自动轮播 */
                        },
                        pagination: {
                            el: '.swiper-pagination',
                            clickable: true
                        },
                        navigation: {
                            nextEl: '.swiper-button-next',
                            prevEl: '.swiper-button-prev',
                        }
                    })
                })
            }
        }
    },

}
</script>

<style lang="scss" scoped>

</style>